import Vue from "vue";
import Vuex from "vuex";
import * as api from "@/api/index.js";
import { Toast } from "vant";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    user: localStorage.getItem("user")
      ? JSON.parse(localStorage.getItem("user"))
      : {},
  },
  mutations: {
    setUser(state, payload) {
      state.user = payload;
    },
  },
  actions: {
    async login(content, payload) {
      // 将表单提交的账号密码进行提交 payload={username,password}
      // 当登录成功，后端返回用户的数据，进行修改用户信息
      // 保存登录的凭证token

      // token： 通过这个凭证就可以进行访问
      //  access-token就是登录凭证，他会有有效期，比如1小时有效
      // refresh-token：当access-token失效的时候，使用refresh-token进行获取access-token,
      //  就可以使用新的token进行登录，reresh
      let res = await api.postLogin(payload);
      if (res.msg === "操作成功") {
        Toast.success("登录成功");
        content.commit("setUser", res.result);
        localStorage.setItem("user", JSON.stringify(res.result));
      } else {
        Toast.fail(res.result);
      }
      return res;
    },
  },
  modules: {},
});
